<html>

<head>
<title>DeeLang - Readme</title>
</head>

<body>
<h2>DeeLang - An embeddable scripting language for Java(tm).</h2>

<p>DeeLang is an simple, dynamic, embeddable scripting language for Java that is designed
to easily add support for user-scripted actions within a Java application.</p>

<h3>DeeLang is</h3>

<ul>
<li><strong>Flexible</strong>: You can easily embed DeeLang and provide your users with a custom environment for scripting.</li>
<li><strong>Lightweight</strong>: The entire DeeLang compiler, VM and runtime weigh in at less that 500k (including the required ANTLR runtime).</li>
<li><strong>Intuitive</strong>: Designed for non-expert programmers, DeeLang has an easy to read syntax that anyone can pick up with a little guidance.</li>
<li><strong>Portable</strong>: Originally designed for use in the Android environment, DeeLang should be embeddable anywhere.</li>
<li><strong>Compiled</strong>: DeeLang scripts compile to a compact, self-contained bytecode format designed for minimal memory usage.</li>
<li><strong>Free</strong>: DeeLang is free to use and distribute, under the Apache License 2.0.</li>
</ul>

<h3>Who can use DeeLang?</h3>

<p>If you're writing or maintaining an application that has a need for a simple, versatile built-in scripting
language that allows you to provide users with well-defined extension points against which to write their
scripts, then DeeLang is for you. Simply code up your extension point objects in Java, register them within
your context, then load up a stored compiled script (or compile one afresh) and you're good to go.</p>

<p>Here is some example DeeLang code:</p>

<ul><code><pre>
Phone.hangUp()

Contacts.find("Ross Bamford") {
  Phone.call(number)
} or {
  Tell.me(why)
}

pic = Camera.take_picture()
pic.save_to_media()

Facebook.share(pic) {
  pic.caption = "I just took this picture!"
  pic.album = "Random pics I took"
} or {
  Facebook.postStatus("took a pic but couldn't upload it :(")
}

Broadcast.intent() { makeIntent("com.roscopeco.someapp.action.FOO", "http://www.google.com/") }
</pre></code></ul>

<p>The objects referenced in the above code are all simple objects, implemented in Java, that perform
whatever work they need to and can interact fully with the DeeLang code running in the virtual machine
via DeeLang's runtime API.</p>

<p>For more information, including obtaining DeeLang, check out 
<a target="_blank" href='http://deelang.googlecode.com/'>http://deelang.googlecode.com/</a>.</p>

<p>DeeLang is Copyright &copy; 2011 Ross Bamford and is Open Source software, licensed under
the Apache License 2.0. See <a href="LICENSE.html" target="_blank">LICENSE</a> for license details</a>.</p>

</body>
</html>

